#include "LinkerProxyRemote.h"

namespace varayoc
{
namespace linkerproxy
{
namespace runnable
{


   LinkerProxyRemote::LinkerProxyRemote() : m_buffer(1024 * 1) // inicializar m_buffer en el contructor de esta clase
{
   String ipAddress = "127.0.0.1";
   Int port = 1395;
   // necesario para inicializar el socket udp
   m_udpClient = varayoc::ipcomm::UdpClient::create(ipAddress, port);
}

LinkerProxyRemote_ptr   LinkerProxyRemote::create()
{
   return LinkerProxyRemote_ptr(new LinkerProxyRemote());
}

LinkerProxyRemote::~LinkerProxyRemote()
{
}

Bool LinkerProxyRemote::startLinkerProxyRemote()
{
   Bool ret = False;
   if (m_udpClient->open())
   {
//      Int res = 0;
      //m_udpClient->startGrabbing();

      String data = "hola 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789";
      m_buffer.resize(data.size(),false);
      memcpy(m_buffer.get(),data.c_str(),data.size());
      m_udpClient->send(m_buffer,data.size());
      sleep(3);

      //while(False)
      //{
      //   sleep(1);
//         res = recv(m_buffer);  // se confunde con el recv de sistema
      //   res = m_udpClient->recv(m_buffer);  //
      //   std::cout << "res : " << res << std::endl;
      //}

      //m_udpClient->stopGrabbing();
      m_udpClient->close();
   }
   else
   {}
   return ret;
}

Void LinkerProxyRemote::stopLinkerProxyRemote()
{
   m_udpClient->stopGrabbing();
}

}}}
